package com.sjw.workflow.core;

import java.util.Map;
import java.util.concurrent.CompletableFuture;

/**
 * Agent接口定义
 * 每个Agent有自己的能力，一次只做一件事情
 */
public interface Agent {
    
    /**
     * Agent的唯一标识
     */
    String getId();
    
    /**
     * Agent的名称
     */
    String getName();
    
    /**
     * Agent的描述
     */
    String getDescription();
    
    /**
     * 执行Agent任务
     * @param input 输入参数
     * @param context 上下文信息
     * @return 执行结果
     */
    CompletableFuture<AgentResult> execute(AgentInput input, WorkflowContext context);
    
    /**
     * 检查Agent是否准备就绪
     * @param context 上下文信息
     * @return 是否准备就绪
     */
    boolean isReady(WorkflowContext context);
}